class Plan < ActiveRecord::Base

  belongs_to :alumno, :class_name => 'Persona', :foreign_key=>'alumno_id'
  
  has_many :tickets, :dependent=>:destroy
  
  #se espera que sea pago de determinada manera. cada pago puede resultar ser diferente.
  belongs_to :forma

  validates_presence_of :nombre, :message=>"^De un nombre para el plan."
  validates_presence_of :ini, :message=>"^Indique la fecha de inicio del plan."
  validates_presence_of :fin, :message=>"^Indique la fecha de fin del plan."
  validates_presence_of :alumno_id, :message=>"^Indique a que alumno corresponde el plan."
  
  validate :fechas_validas
  
  def ticket_attributes=(ticket_attributes)
    ticket_attributes.each do |atributos|
      tickets.build(atributos)
    end
  end
  
  def fechas_validas
    return if !fin or !ini
    errors.add( "","La fecha de fin debe ser posterior a la de inicio del plan." ) if fin<ini
  end
  
  def vencido?
    return fin_plan<Date.today
  end
    
  def vence_pronto?
    return fin_plan < Date.today.next_month
  end
  
end
